package view;

import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import javax.swing.JPanel;

/**
 * Classe representant la jauge d'activation de voix
 * @author Lefevre, Thoue
 */
public class PanelVoice extends JPanel {

    private int seuil;
    private int actualVoice;
    private int max;

    /**
     * Constructeur
     */
    public PanelVoice() {
        setPreferredSize(new Dimension(200, 21));
        this.max = 200;
    }

    /**
     * Methode de dessin de la jauge
     * @param g parametre graphique
     */
    @Override
    public void paintComponent(Graphics g) {
        //prise en compte de la taille du composant
        actualVoice = actualVoice * 2;
        seuil = seuil * 2;
        //creation des couleurs
        if (actualVoice >= seuil) {
            g.setColor(Color.red);
            g.fillRect(1, 1, seuil, 20);
            g.setColor(Color.green);
            g.fillRect(seuil + 1, 1, (actualVoice - seuil), 20);
            g.setColor(new Color(0, 139, 0));
            g.fillRect(actualVoice + 1, 1, (max - actualVoice), 20);

        } else {
            g.setColor(Color.red);
            g.fillRect(1, 1, actualVoice, 20);
            g.setColor(new Color(139, 0, 0));
            g.fillRect(actualVoice + 1, 1, (seuil - actualVoice), 20);
            g.setColor(new Color(0, 139, 0));
            g.fillRect(seuil + 1, 1, (max - seuil + 1), 20);
        }
    }

    /**
     * Setter du niveau de voix actuel
     * @param actualVoice niveau de voix actuel
     */
    public void setActualVoice(int actualVoice) {
        this.actualVoice = actualVoice;
    }

    /**
     * Setter du niveau du seuil du silence
     * @param seuil niveau du seuil de silence
     */
    public void setSeuil(int seuil) {
        this.seuil = seuil;
    }
}
